package leecode;

/**
 * 第18天
 */
public class LeetCode18 {
    //球树的最大高度
    public int maxDepth(TreeNode root) {
        if(root==null){
            return 0;
        }
        return 1+Math.max(maxDepth(root.left),maxDepth(root.right));
    }
    //求树的最小高度
    public int minDepth(TreeNode root) {
        if(root==null){
            return 0;
        }
        return 1+Math.min(maxDepth(root.left),maxDepth(root.right));
    }
    //平衡二叉树
    public boolean isBalanced(TreeNode root) {
        if(root==null){
            return true;
        }
        if(Math.abs(maxDepth(root.right)-maxDepth(root.left))<2){
            return isBalanced(root.right)&&isBalanced(root.left);
        }
       return false;
    }
}
